From 3d95cc36a00365a4d0e7df9f4ebeb63ddd9bc71a Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 16 Nov 2005 12:23:17 +0100 Subject: [PATCH] Fix up start_info_t magic string to match the format of XENVER_capabilities strings. Signed-off-by: Keir Fraser --- tools/libxc/xc_linux_build.c | 6 ++++-- xen/arch/ia64/xen/domain.c | 2 +- xen/arch/x86/domain_build.c | 3 ++- xen/include/public/xen.h | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c index fc6fc9d904..d5c784c019 100644 --- a/tools/libxc/xc_linux_build.c +++ b/tools/libxc/xc_linux_build.c @@ -351,7 +351,7 @@ static int setup_guest(int xc_handle, xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[0]); memset(start_info, 0, sizeof(*start_info)); rc = xc_version(xc_handle, XENVER_version, NULL); - sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF)); + sprintf(start_info->magic, "xen-%i.%i-ia64", rc >> 16, rc & (0xFFFF)); start_info->flags = flags; start_info->store_mfn = nr_pages - 2; start_info->store_evtchn = store_evtchn; @@ -628,7 +628,9 @@ static int setup_guest(int xc_handle, page_array[(vstartinfo_start-dsi.v_start)>>PAGE_SHIFT]); memset(start_info, 0, sizeof(*start_info)); rc = xc_version(xc_handle, XENVER_version, NULL); - sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF)); + sprintf(start_info->magic, "xen-%i.%i-x86_%d%s", + rc >> 16, rc & (0xFFFF), sizeof(long)*8, + dsi.pae_kernel ? "p" : ""); start_info->nr_pages = nr_pages; start_info->shared_info = shared_info_frame << PAGE_SHIFT; start_info->flags = flags; diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index 15920ca8a0..416c096432 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -952,7 +952,7 @@ int construct_dom0(struct domain *d, si = (start_info_t *)alloc_xenheap_page(); memset(si, 0, PAGE_SIZE); d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT; - sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION); + sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION); #if 0 si->nr_pages = d->tot_pages; diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index d3b8a7a4d0..b83ea2c47c 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -639,7 +639,8 @@ int construct_dom0(struct domain *d, si->pt_base = vpt_start; si->nr_pt_frames = nr_pt_pages; si->mfn_list = vphysmap_start; - sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION); + sprintf(si->magic, "xen-%i.%i-x86_%d%s", + XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, xen_pae ? "p" : ""); /* Write the phys->machine and machine->phys table entries. */ for ( pfn = 0; pfn < d->tot_pages; pfn++ ) diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h index 51697ef15a..2259fc3ba0 100644 --- a/xen/include/public/xen.h +++ b/xen/include/public/xen.h @@ -408,7 +408,7 @@ typedef struct shared_info { #define MAX_GUEST_CMDLINE 1024 typedef struct start_info { /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME. */ - char magic[32]; /* "Xen-.". */ + char magic[32]; /* "xen--". */ unsigned long nr_pages; /* Total pages allocated to this domain. */ unsigned long shared_info; /* MACHINE address of shared info struct. */ uint32_t flags; /* SIF_xxx flags. */ -- 2.30.2